<?php
    class Group {
        private $gid;
        public  $name;
        
        public function __construct($gid=0) {
            if($gid < 1) {
                return;
            }
            $info = GroupDAO::getGroupInfo($gid);
            if($info !== false) {
                $this->name = $info['name'];
                $this->gid = $info['gid'];
            }
            
        }
        
        public function getGid() {
            return $this->gid;
        }
        
        public function create() {
            $this->gid = 0;
            if(GroupDAO::groupExist($this)) {
                $err = Error::instance();
                $err->add("Grupa o podanej nazwie już istnieje.");
                return false;
            }
            $this->gid = GroupDAO::createGroup($this);
            return $this->gid;
        }
        
        public function delete() {
            if($this->gid < 1) {
                $err = Error::instance();
                $err->add("Podana grupa nie istnieje w bazie danych!");
                return false;
            }
            if(!GroupDAO::groupExist($this)) {
                $err = Error::instance();
                $err->add("Podana grupa nie istnieje w bazie danych!");
                return false;
            }
            $users = $this->getUsers();
            GroupDAO::deleteGroup($this);
            return $users;
        }
        
        public function update() {
            if($this->gid < 1) {
                return false;
            }
            return GroupDAO::updateGroup($this);
        }
        
        public function getUsers() {
            if($this->gid < 1) {
                return false;
            }
            if(!GroupDAO::groupExist($this)) {
                return false;
            }
            return GroupDAO::getUsers($this);
        }
        
        public function addUser($user) {
            if($user->getUid() < 1) {
                return false;
            }
            return GroupDAO::addUser($this, $user);
        }
    }
    
?>
